package com.base.monitor.module.biz.service.cfg;

import com.base.monitor.framework.result.PageResult;
import com.base.monitor.model.model.biz.cfg.crierita.GatewayCriteria;
import com.base.monitor.model.model.biz.cfg.dto.GatewayGenerateCommandDto;
import com.base.monitor.model.model.biz.cfg.entity.Gateway;

import java.util.Map;

public interface GatewayService {

    /**
     * 分页条件查询
     * @param criteria 查询条件
     * @return
     */
    PageResult<Gateway> page(GatewayCriteria criteria);

    /**
     * 下发获取版本的命令
     */
    void sendVersionCommand();

    /**
     * 生成下发命令
     * @param gatewayGenerateCommandDto 生成命令需要的实体信息
     * @return
     */
    Map<String, String> generate(GatewayGenerateCommandDto gatewayGenerateCommandDto);

    /**
     * 下发指令
     * @param gatewayGenerateCommandDto 下发指令需要的实体信息
     */
    void writeCollectCommand(GatewayGenerateCommandDto gatewayGenerateCommandDto);

    /**
     * 查看下发结果
     * @param gatewayGenerateCommandDto 查看结果需要的实体信息
     */
    void checkCollectResult(GatewayGenerateCommandDto gatewayGenerateCommandDto);
}
